Method and apparatus for testing stability of game server

ABSTRACT

Disclosed is a method for testing stability of a game server. The method for testing stability of a game server according to an exemplary embodiment of the present invention includes: executing, by at least one virtual user, actions or scenarios that are a list of actions; generating at least one game packets required to execute the executed actions or the actions included in the executed scenarios according to game protocols of specific game contents; and transmitting the generated game packets to a game server.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and the benefit of Korean Patent Application No. 10-2011-0079776 filed in the Korean Intellectual Property Office on Aug. 10, 2011, the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a method and an apparatus for testing stability of a game server, and more particularly, to an apparatus and a method for testing stability of a game server by generating loads to the game server using virtual users.

BACKGROUND ART

As known, when client/server based online games are developed, a stability test of online game server applications is very important. A field of automatically testing stability and performance of server applications for multi users belongs to a software test field. Research on testing stability of a server by generating any loads and effecting the generated loads on the server is a load test in terms of software engineering and is included in a category of a stress test observing an abnormal phenomenon appearing in a server in a high load state.

Enhancing stability of the game server and the game client using the test of the game server corresponds to a field of game quality assurance.

For testing the stability of the virtual client based game server used in the related art, a method for capturing game packets and simply regenerating the captured game packets or a method for capturing game packets, understanding change rules of the game packets by analyzing the captured game packets, and representing the change rules as scripts or self-packet grammars has been used.

However, the method for simply regenerating the game packets uses the captured data as they are without recognizing the state of the game server, which makes it difficult to be applied to places where large-scale loads are generated. Further, the method for using scripts or packet grammars has problems in that a user needs to learn separate scripts or packet grammars and cannot easily find out errors of the scripts or the packet grammars.

SUMMARY OF THE INVENTION

The present invention has been made in an effort to provide an apparatus and a method for testing stability of a game server that may more effectively and simply test stability of a game server by generating loads to the game server using virtual users.

An exemplary embodiment of the present invention provides a method for testing stability of a game server, including: executing, by at least one virtual user, actions or scenarios that are a list of actions; generating at least one game packets required to execute the executed actions or the actions included in the executed scenarios according to game protocols of specific game contents; and transmitting the generated game packets to a game server.

The method for testing stability of a game server may further include: generating the game packets required to execute the given actions according to the game protocols of the specific game contents and loading another plug-in according to the game contents, wherein the generating of the game packets is performed through the plug-in.

The plug-in may be implemented by a DLL type.

The method for testing stability of a game server may further include: analyzing the game packets received from the game server according to the game protocols of the specific game contents.

The method for testing stability of a game server may further include: reconfiguring the game packets received from the game server in a protocol unit according to the game protocols.

The method for testing stability of a game server may further include: encrypting the generated game packets.

Another exemplary embodiment of the present invention provides a computer readable recording medium recording programs for executing the method for testing stability of a game server according to the exemplary embodiment of the present invention is provided.

Yet another exemplary embodiment of the present invention provides an apparatus for testing stability of a game server, including: a scenario scheduler executing scenarios that are a list of actions; an action scheduler executing actions; and a game packet processor generating at least one game packet required to execute the executed actions or the actions included in the executed scenarios according to game protocols of specific game contents and transmitting the generated game packets to a game server.

The game packet processor may be implemented by another plug-in type according to the game contents.

The game packet processor may be implemented by a DLL type.

The game packet processor may analyze the game packets received from the game server according to the game protocols of the specific game contents.

The game packet processor may include: a game packet generator generating the at least one game packet according to the game protocols of the specific game contents; and a game packet analyzer analyzing the game packets received from the game server according to the game protocols of the specific game contents.

The game packet processor may further include an MTU processor reconfiguring the game packets received from the game server in a protocol unit according to the game protocols.

The game packet processor may further include an encryptor encrypting the generated game packets or decrypting the received game packets.

Still another exemplary embodiment of the present invention provides an apparatus for testing stability of a game server, including: a plurality of virtual users generating game packets and transmitting the generated game packets to a game server; and a virtual user controller issuing an action execution command or a scenario execution command in which actions are listed to the virtual users, wherein each virtual user configuring the plurality of virtual users includes: a scenario scheduler executing the scenarios; an action scheduler executing the actions; and a game packet processor generating at least one game packet required to execute the executed actions or the actions included in the executed scenarios according to game protocols of specific game contents and transmitting the generated game packets to a game server.

The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a diagram showing a configuration of an apparatus for testing stability of a game server according to an exemplary embodiment of the present invention.

FIG. 2 is a diagram showing a configuration of the apparatus for testing stability of a game server according to the exemplary embodiment of the present invention that is configured by being divided into three modules.

FIG. 3 shows a flow chart of a method for testing stability of a game server according to an exemplary embodiment of the present invention.

It should be understood that the appended drawings are not necessarily to scale, presenting a somewhat simplified representation of various features illustrative of the basic principles of the invention. The specific design features of the present invention as disclosed herein, including, for example, specific dimensions, orientations, locations, and shapes will be determined in part by the particular intended application and use environment.

In the figures, reference numbers refer to the same or equivalent parts of the present invention throughout the several figures of the drawing.

DETAILED DESCRIPTION

Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, we should note that in giving reference numerals to elements of each drawing, like reference numerals refer to like elements even though like elements are shown in different drawings. In describing the present invention, well-known functions or constructions will not be described in detail since they may unnecessarily obscure the understanding of the present invention.

FIG. 1 shows a configuration of an apparatus for testing stability of a game server according to an exemplary embodiment of the present invention. An apparatus 100 for testing stability of a game server transmits game packets generated by a plurality of virtual users 150 to a game server 200 and receives game packets from the game server 200, thereby testing the stability of the game server 200. As shown in FIG. 1, the apparatus 100 for testing stability of a game server is configured to include a virtual user controller 110, a virtual user manager 120, a game data manager 130, a game object visualizer 140, and a plurality of virtual users 150. As shown in FIG. 1, the virtual user 150 is configured to include a scenario scheduler 151, an action scheduler 152, and a game packet processor 153. The configuration of the virtual user 150 is similarly applied to other virtual users 150, and therefore only a single virtual user 150 is shown for convenience of explanation.

The virtual user controller 110 issues an action execution command or a scenario execution command in which actions are listed to a specific virtual user 150 or a group of the virtual users 150.

The virtual user manager 120 manages the virtual users within the apparatus 100 for testing stability of a game server or the group of the virtual users.

The virtual user 150 generates the game packets according to the action execution command or the scenario execution command of the virtual user controller 100 and transmits the generated game packets to the game server 200. Further, the virtual user 150 receives the game packets from the game server 200 and analyzes the received game packets to extract information about game objects. An example of the game object information extracted from the game packets may include positional information or status information (money, hit point (HP), magic point (MP), level, or the like) of the game objects (for example, a player, a monster, a non player character (NPC), or the like).

The game data manager 130 collects the game object information extracted from the virtual users 150, for example, the position information or the status information of the game objects and manages the collected game object information.

The game object visualizer 140 collects the game object information extracted from the virtual users 150, converts the collected game object information into virtualization data, and outputs the virtualized data to a 2D or 3D screen.

The virtual user controller 110, the virtual user manager 120, the game data manager 130, and the game object visualizer 140 may be implemented by a processor for comparing and operating data under the typical computing environments and a memory that may load and process data required to perform works and may include a recording medium that stores data if necessary.

The scenario scheduler 151 executes scenarios according to the commands of the virtual user controller 110. The scenarios correspond to a list of consecutive actions as described above. An example of the actions may include log-in, forward movement, backward movement, rotation, attack, transaction, or the like. The scenario scheduler 151 transmits the consecutive action commands corresponding to the actions belonging to the scenarios to the action scheduler 152.

The action scheduler 152 executes the corresponding actions according to the consecutive action commands from the scenario scheduler 151. In some cases, when the action commands are directly transmitted from the virtual user controller 110, the action scheduler 152 may execute the corresponding action according to the action commands. When the action scheduler 152 executes the actions, the game packet processor 153 generates at least one game packet required to execute the corresponding actions and transmits the generated game packets to the game server 200. In this case, the game packet processor 153 generates game packets according to game protocols of specific game contents. Further, when the game packet processor 153 receives the game packets from the game server 200, the game packet processor 153 analyzes the received game packets to extract the information about game objects. In this case, the game packet processor 153 analyzes the game packets according to the game protocols of the specific game contents.

The action defines a sequence of transmitting and receiving at least one game protocol. Types of actions are generally different for each game, but the examples of the actions commonly include log-in, world access, forward movement, backward movement, left turn, right turn, backward movement, chatting transaction, room generation, room entrance, and the like. For example, in the log-in action, the sequence of the game protocols is different for each game, but the protocol sequence of the log-in action may be defined by simple scripts as follows. An example of the log-in action scripts is as follows.

TABLE 1 SENDWAIT 5 6: Transmit game packet No. 5 and waits until game packet No. 6 is received SENDWAIT 8 9: Transmit game packet No. 8 and waits until game packet No. 9 is received DELAY 3: Wait without doing anything for three seconds SEND 55: Transmit game packet No. 55.

The scenarios correspond to a list of the actions. The scenarios are generally different for each game, but may be simply re-defined for each game by the following scripts. The example of the scenario scripts is as follows.

TABLE 2 doAction 0: Execute log-in action doAction 2: Execute forward movement action doAction 2: Execute forward movement action doAction 2: Execute forward movement action doAction 2: Execute forward movement action doAction 3: Execute left turn action doAction 3: Execute left turn action MoveTo 50, 20, 30: Generate actions of forward movement, left turn, and right turn so as to move to positions 50, 20, and 30 from a current position. doAction 7: Execute chatting action

In the above description, a number subsequent to ‘doAction’ represents an index number of an action. However, the scenario scripts may be prepared as a name of an action instead of the index number (for example, doAction left turn).

In detail, the game packet processor 153 is configured to include a game packet generator 154, a game packet analyzer 155, a maximum transfer unit (MTU) processor 156, and an encryptor 157.

The game packet generator 154 generates the game packets according to the game protocols of the specific game contents.

The game packet analyzer 155 analyzes the game packets received from the game server 200 according to the game protocols of the specific game contents to extract the information about the game objects. In addition, the game packet analyzer 155 analyzes the game packets received from the game server 200 when the scripts waiting for the reception of the game packets from the game server 200 are present in the actions executed by the action scheduler 152 to check whether the waiting game packets are received and serves to inform the game packet generator 154 or the action scheduler 152 of the case where the corresponding game packets are received. For example, the game packet analyzer 155 checks whether game packet No. 6 is received and whether game packet No. 9 is received in the action scripts described in the above example and informs the game packet generator 154 and the action scheduler 152 of the checked results. Then, the game packet generator 154 or the action scheduler 152 confirms the reception of the corresponding game packets and performs the transmission of next game packets or the execution operation of the next action.

Meanwhile, the game packets received from the game server 200 are not generally received by being divided in each protocol unit but the game packets received at a time may be configured by several protocols and the game packets received several times may also be configured by a single protocol. The MTU processor 155 serves to reconfigure the game packets received from the game server 200 in a protocol unit. In this case, the MTU processor 155 reconfigures the received game packets in a protocol unit according to the game protocols of the specific game contents.

In some case, when the game packets are transmitted to the game server 200, the corresponding game packets need to be encrypted. In addition, the game packets received from the game server 200 may be the encrypted game packet. The encryptor 157 encrypts the game packets generated by the game packet generator 154 and serves to release the encryption by decrypting the game packets received from the game server 200.

As described above, the game protocols are differently configured according to the game contents, but the scenarios and the actions may be common for each game. Therefore, in the exemplary embodiment of the present invention, the game packet processor 153 is implemented by another plug-in type according to the game contents and the scenario scheduler 151, the action scheduler 152, or the like, that are the remaining configuration, are implemented by the same type independently of the game contents. In other words, when the game contents, that are an object of the stability test of the game server, are different from each other, the game packets are generated according to the game protocols of the game contents that become different by replacing the game packet processor 153, analyzed, and reconfigured in a protocol unit.

The game object visualizer 140, the scenario scheduler 151, the action scheduler 152, and the game packet processor 153 may be implemented by the processor for comparing and operating data under the typical computing environments and a memory that may load and process data required to perform works and may include a recording medium that stores data if necessary.

FIG. 2 is a diagram showing a configuration of the apparatus for testing stability of the game server according to the exemplary embodiment of the present invention that is configured by being divided into three modules. The apparatus for testing stability of a game server is configured to include a virtual user control common module 300, a virtual user control execution module 400, and a plug-in 500.

The virtual user control common module 300 includes the scenario scheduler 151, the action scheduler 152, the virtual user manager 120, and the game data manager 130 and is implemented by a dynamic linking library (DLL) type. The virtual user control common module 300 is not limited to the specific game contents, but may be commonly applied to various game contents.

The virtual user control execution module 400 includes the virtual user controller 110 and the game object visualizer 140 and is implemented by an EXE type. The virtual user control common module 400 is not also limited to the specific game contents, but may be commonly applied to various game contents.

The plug-in 500 includes the game packet processor 153 that processes the game packets according to the game protocols of the specific game contents and is implemented by the DLL type. The plug-in 500 is replaced with a new type of DLL according to the change in the game contents.

In FIG. 2, an arrow represents a reference relationship. The virtual user control common module 300 is referenced by the virtual user control execution module 400 and the plug-in 500. The plug-in 500 is referenced by the virtual user control execution module 400.

FIG. 2 shows an example of a function that is performed by each module configuring the apparatus for testing stability of a game server according to the exemplary embodiment of the present invention, in which each function performed by the virtual user control common module 300 and the virtual user control execution module 40 can be rearranged as needed. For example, in FIG. 2, the virtual user controller 110 cannot be referenced by the plug-in 500 in the virtual user control execution module 400, but the function of the virtual user controller 110 is arranged in the virtual user control common module 300 and thus, can be modified so as to be referenced by the plug-in 500. On the other hand, in FIG. 2, the game data manager 130 is included in the virtual user control common module 300, but the function of the game data manager 130 may also be arranged in the virtual user control execution module 400 when the plug-in 500 need not refer to the game data manager 300.

FIG. 3 shows a flow chart of a method for testing stability of a game server according to an exemplary embodiment of the present invention. The method for testing stability of a game server according to the exemplary embodiment of the present invention is configured to include steps processed in the apparatus 100 for testing stability of a game server as described above. Therefore, even though the contents are not described below, the contents described above regarding the apparatus 100 for testing stability of a game server may also be applied to the method for testing stability of a game server according to the exemplary embodiment of the present invention.

At S600, the virtual user controller 110 loads the DLL type of plug-in that generates the game packets required to execute the given actions according to the game protocols of the specific game contents. As described above, the game protocols are differently configured according to the game contents. Here, the DLL type of plug-in is differently implemented according to the game contents and may be previously prepared for each game contents.

At S605, the virtual user controller 110 loads the actions for testing the game server 200. In other words, the virtual user controller 110 loads the action scripts previously prepared. The action scripts may be previously stored in the memory of the apparatus 100 for testing stability of a game server or may be arbitrarily defined by the user.

At S610, the virtual user controller 110 loads the scenarios for testing the game server 200. In other words, the virtual user controller 110 loads the scenario scripts previously prepared. The scenario scripts may also be previously stored in the memory of the apparatus 100 for testing stability of a game server or may be arbitrarily defined by the user.

At S615, the virtual user controller 110 generates the virtual user 150 or a group of several virtual users 150. When the virtual user or the group of the virtual users is generated, the function of the DLL type of plug-in loaded at S600 is allocated to each of the generated virtual users.

At S620, the virtual user controller 110 issues the execution commands of the specific scenarios to the virtual user 150 or the group of the virtual users. The scenario scheduler 151 of the virtual user 150 receiving the scenario execution command executes the corresponding scenarios. The scenarios to be executed are executed by being arbitrarily selected from the loaded scenarios by the user and the scenario scheduler 151 sequentially performs the scripts of the selected scenarios. The scenario scheduler 151 transmits the consecutive action commands corresponding to the actions belonging to the scenario to the action scheduler 152.

At S625, the action scheduler 152 executes the corresponding actions according to the consecutive action commands from the scenario scheduler 151.

In some cases, the virtual user controller 110 does not issue the scenario execution command, but may directly issue the action execution command to the virtual user 150. In this case, S620 is omitted and at S625, the virtual user controller 110 issues the execution commands of the specific actions to the virtual user 150 or the group of the virtual users. The action scheduler 152 of the virtual user 150 receiving the action execution command executes the corresponding actions according to the action execution command. The actions to be executed are executed by being arbitrarily selected from the loaded actions by the user and the action scheduler 152 sequentially performs the scripts of the selected actions.

When the action scheduler 152 executes the actions, at S630, the game packet processor 153 generates at least one game packet required to execute the corresponding actions. The game packet processor 153 belongs to the DLL type of plug-in loaded at S600 described above and generates the game packets according to the game protocols of the specific game contents.

At S640, the game packet processor 153 transmits the generated game packets to the game server 200. During the transmission, the game packets may be encrypted by the encryptor 157.

When the game server 200 receives the game packets from the virtual user 150 of the apparatus 100 for testing stability of a game server, the game packets responding thereto is transmitted to the corresponding virtual user 150. At S640, the virtual user 150 receives the game packets from the game server 200. During the reception, the game packets may be decrypted by the encryptor 157. In addition, the game packets may be reconfigured in a protocol unit according to the game protocols of the specific game contents by the MTU processor 156.

At 645, the game packet processor 153 of the virtual user 150 analyzes the received game packets. The game packet processor 153 belongs to the DLL type of plug-in loaded at S600 described above and analyzes the game packets according to the game protocols of the specific game contents. The game object information extracted according to the analysis result of the game packets is transmitted to the game data manager 130 and the game object visualizer 140. In some cases, when the scripts waiting for receiving the game packets from the game server 200 are present in the actions which are being executed, the game packet processor 153 checks whether the waiting game packets are received by analyzing the received game packets and informs the action scheduler 152 of the case where the corresponding game packets are received. In this case, returning back to S625, the next scripts of the actions are executed.

At S650, the game object visualizer 140 converts the game object information transferred from the game packet processor 153 of the virtual user 150 into the visualization data and outputs the visualization data to the 2D or 3D screen.

According to the exemplary embodiments of the present invention as described above, it is possible to easily perform the stability test of the game server on new game contents by replacing only the game packet processing unit implemented by the DLL type of plug-in at the time of changing the game contents. That is, when performing the stability test of the game server on the new game contents, the time and costs consumed to build the test environments can be remarkably reduced. Therefore, the stability of the system can be improved and the users can receive higher quality of online game services, by performing the game server test on various types of game contents with a little effort.

Meanwhile, the exemplary embodiments of the present invention as described above can be performed by programs executable by a computer and can be implemented by a general-purpose digital computer operating the programs using a computer readable recording medium. The computer readable recording medium includes storage media such as a magnetic storage medium (for example, an ROM, a floppy disc, a hard disc, and the like), an optical reading medium (for example, a CDROM, a DVD, and the like), and the like.

According to the exemplary embodiments of the present invention, it is possible to easily perform the stability test of the game server on new game contents by replacing only the game packet processing unit at the time of changing the game contents. That is, when performing the stability test of the game server on the new game contents, the time and costs consumed to build the test environments can be remarkably reduced.

As described above, the exemplary embodiments have been described and illustrated in the drawings and the specification. The exemplary embodiments were chosen and described in order to explain certain principles of the invention and their practical application, to thereby enable others skilled in the art to make and utilize various exemplary embodiments of the present invention, as well as various alternatives and modifications thereof. As is evident from the foregoing description, certain aspects of the present invention are not limited by the particular details of the examples illustrated herein, and it is therefore contemplated that other modifications and applications, or equivalents thereof, will occur to those skilled in the art. Many changes, modifications, variations and other uses and applications of the present construction will, however, become apparent to those skilled in the art after considering the specification and the accompanying drawings. All such changes, modifications, variations and other uses and applications which do not depart from the spirit and scope of the invention are deemed to be covered by the invention which is limited only by the claims which follow. 

1. A method for testing stability of a game server, comprising: executing, by at least one virtual user, actions or scenarios that are a list of actions; generating at least one game packets required to execute the actions or the actions included in the scenarios according to game protocols of specific game contents; and transmitting the generated game packets to a game server.
 2. The method of claim 1, further comprising: generating the game packets required to execute the given actions according to the game protocols of the specific game contents and loading another plug-in according to the game contents, wherein the generating of the game packets is performed through the plug-in.
 3. The method of claim 2, wherein the plug-in is implemented by a DLL type.
 4. The method of claim 1, further comprising: analyzing the game packets received from the game server according to the game protocols of the specific game contents.
 5. The method of claim 1, further comprising: reconfiguring the game packets received from the game server in a protocol unit according to the game protocols.
 6. The method of claim 1, further comprising: encrypting the generated game packets.
 7. A computer readable recording medium recording programs for executing the method for testing stability of a game server of claim
 1. 8. An apparatus for testing stability of a game server, comprising: a scenario scheduler executing scenarios that are a list of actions; an action scheduler executing actions; and a game packet processor generating at least one game packet required to execute the actions and the actions included in the scenarios according to game protocols of specific game contents and transmitting the generated game packets to a game server.
 9. The apparatus of claim 8, wherein the game packet processor is implemented by another plug-in type according to the game contents.
 10. The apparatus of claim 9, wherein the game packet processor is implemented by a DLL type.
 11. The apparatus of claim 8, wherein the game packet processor analyzes the game packets received from the game server according to the game protocols of the specific game contents.
 12. The apparatus of claim 8, wherein the game packet processor includes: a game packet generator generating the at least one game packet according to the game protocols of the specific game contents; and a game packet analyzer analyzing the game packets received from the game server according to the game protocols of the specific game contents.
 13. The apparatus of claim 8, wherein the game packet processor further includes an MTU processor reconfiguring the game packets received from the game server in a protocol unit according to the game protocols.
 14. The apparatus of claim 12, wherein the game packet processor further includes an encryptor encrypting the generated game packets or decrypting the received game packets.
 15. An apparatus for testing stability of a game server, comprising: a plurality of virtual users generating game packets and transmitting the generated game packets to a game server; and a virtual user controller issuing an action execution command or a scenario execution command in which actions are listed to the virtual users, wherein each virtual user configuring the plurality of virtual users includes: a scenario scheduler executing the scenarios; an action scheduler executing the actions; and a game packet processor generating at least one game packet required to execute the actions or the actions included in the scenarios according to game protocols of specific game contents and transmitting the generated game packets to the game server.
 16. The apparatus of claim 15, wherein the game packet processor is implemented by another plug-in type according to the game contents.
 17. The apparatus of claim 16, wherein the game packet processor is implemented by a DLL type.
 18. The apparatus of claim 15, wherein the game packet processor analyzes the game packets received from the game server according to the game protocols of the specific game contents. 